<?php

namespace App\Models\Business;

use Illuminate\Database\Eloquent\Model;

// 时间格式化
use DateTimeInterface;

use App\Models\Config as ConfigModel;

use App\Models\Region as RegionModel;


class Business extends Model
{
    // 设置当前模型对应的完整数据表名称
    protected $table = 'business';

    /**
     * 模型日期的存储格式
     *
     * @var string
     */
    protected $dateFormat = 'U'; //时间戳

    const CREATED_AT = 'createtime';

    // 如果不需要定义UPDATED_AT常量，该属性的值设置为null
    const UPDATED_AT = null;

    // 追加不存在的字段
    protected $appends = [
        'avatar_text', //头像
        'region_text' //地区
    ];


    /**
     * 如果想让所有属性都可以批量赋值，可以将 $guarded 定义成一个空数组
     *
     * @var array
     */
    protected $guarded = [];

    // 序列化日期
    protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }

    // 头像 
    //get + 属性名 + Attribute 方法 
    public function getAvatarTextAttribute()
    {
        $url = ConfigModel::where('name', 'shopurl')->value('value');

        // 上面查询的fastAdmin地址可能是线上的，如果请在该项目.env环境配置文件的本地开发地址
        $url = env('SITE_URL', $url);

        $avatar = !empty($this->attributes['avatar']) ? $url . $this->attributes['avatar'] : $url . '/assets/images/avatar.png';

        return $avatar;
    }

    public function getRegionTextAttribute()
    {
        $region = '';

        $province = RegionModel::where('code', $this->attributes['province'])->value('name');

        if ($province) {
            $region = $province . '-';
        }

        $city = RegionModel::where('code', $this->attributes['city'])->value('name');

        if ($city) {
            $region .= $city . '-';
        }

        $district = RegionModel::where('code', $this->attributes['district'])->value('name');

        if ($district) {
            $region .= $district;
        }

        return $region;
    }
}
